package chapter10.practice11;

/**
 * 创建一个private内部类，让他实现一个public接口，写一个方法，它返回一个指向此private内部类的实例的引用，
 * 向上转型为该接口类型，尝试向下转型，说明此内部类完全隐藏了
 * Created by yangliwei on 2017/10/21.
 */
public class SimpleClass {
    private class InnerClass implements SimpleInterface{

        @Override
        public SimpleInterface getSimpleInterface() {
            return new InnerClass();
        }
    }
    public SimpleInterface getInnerClass(){
        return new InnerClass();
    }

    public static void main(String[] args) {
        SimpleClass simpleClass = new SimpleClass();
        SimpleInterface simpleInterface  = simpleClass.getInnerClass();
//        在此类的main方法中可以向下转型，但是在别的类中，就无法向下转型，因为作用域的问题
        InnerClass innerClass = (InnerClass) simpleClass.getInnerClass();
    }
}
